﻿using System.Xml.Linq;
using Test1;

namespace Game
{
    public class HelpButtonsPanelWidget2 : CanvasWidget
    {
        public bool YHLZ = false;

        public ComponentTest1 m_componentTest1;

        public ComponentMiner m_componentMiner;

        public ComponentHealth m_componentHealth;

        public Random random = new Random();

        public ComponentPlayer m_componentPlayer;

        public BevelledButtonWidget m_button1;

        public BevelledButtonWidget m_button2;

        public BevelledButtonWidget m_button3;

        public BevelledButtonWidget m_button4;

        public BevelledButtonWidget m_button5;

        public BevelledButtonWidget m_button6;

        public BevelledButtonWidget m_button7;

        public BevelledButtonWidget m_button8;

        public BevelledButtonWidget m_button9;

        public BevelledButtonWidget m_button10;

        public HelpButtonsPanelWidget2(ComponentMiner componentMiner, IInventory inventory, ComponentPlayer componentPlayer, ComponentHealth componentHealth)
        {
            m_componentMiner = componentMiner;
            m_componentTest1 = componentPlayer.Entity.FindComponent<ComponentTest1>();
            m_componentHealth = componentHealth;
            m_componentPlayer = componentPlayer;
            XElement node = ContentManager.Get<XElement>("Widgets/Help/HelpButtonsPanelWidget2");
            LoadContents(this, node);
            m_button1 = Children.Find<BevelledButtonWidget>("Button1");
            m_button2 = Children.Find<BevelledButtonWidget>("Button2");
            m_button3 = Children.Find<BevelledButtonWidget>("Button3");
            m_button4 = Children.Find<BevelledButtonWidget>("Button4");
            m_button5 = Children.Find<BevelledButtonWidget>("Button5");
            m_button6 = Children.Find<BevelledButtonWidget>("Button6");
            m_button7 = Children.Find<BevelledButtonWidget>("Button7");
            m_button8 = Children.Find<BevelledButtonWidget>("Button8");
            m_button9 = Children.Find<BevelledButtonWidget>("Button9");
            m_button10 = Children.Find<BevelledButtonWidget>("Button10");
        }

        public override void Update()
        {
            if (m_button1.IsClicked)
            {
                string txt = "游戏大致流程可以分为\n1.玩家前期可以采集果树的果子以及一些蘑菇来果腹，这样可以很快的度过前期，本模组的食物无需拖拽到人物栏目，只需要右键食用。注意，如果合成遇到疑问一定要记住去看手册里的万象合成表，手册几乎可以解答一切疑惑！\n\n2.等前期稳定之后，玩家可以开始考虑发展农业，做出一些进阶食物，例如炸鸡之类的。注意，本模组的大部分食物具有自己的特性（例如恢复sen值，加快感冒康复，回血加伤等，同时也包括一些负面buff，例如毒蘑菇会造成立刻中毒）\n\n3.后面，玩家可以往轻工业和魔药学发展，记住，萤石是很重要的原材料，从萤石中提取实体灵能，是魔法物品制作的基础。魔药为玩家提供了多种强力的buff强化，后续还会跟进喷溅型的魔药。\n\n4.实际上，作为辅助性的模组，食品工艺无非就是对食物和玩法的拓展，最好是和其他模组搭配游玩，例如泽拉核心、恒泰等，食品工业的buff一定会成为很强的助力。\n\n5.目前食品工艺的生物并不多，只有僵尸和蜘蛛。他们一般在洞穴生成。相比万象宇宙的它们，它们已经受到了大幅度的削弱和回调，但是由于食品工艺自带万象系列独有的洞穴算法，所以在复杂洞穴地形里，它们依然是不小的威胁。";
                Test1TextDialog dialog = new Test1TextDialog("游戏大致流程", txt, null);
                DialogsManager.ShowDialog(m_componentTest1.m_componentPlayer.GuiWidget, dialog);
            }

            if (m_button2.IsClicked)
            {
                string txt2 = "查看合成表很简单。\n你只需要右键使用手册，里面的《万象合成表》就是。万象合成表会显示原版和万象系列的所有物品的合成配方。\n\n2.目前，万象合成表只对万象和原版进行了适配，并没有适配其他模组的物品合成配方显示。\n\n3.如果你追求更好的体验，请使用小小怪的《SCR合成书》mod。目前我已经对该mod进行了1.5版本以上的适配。\n\n4.\n\n5.";
                Test1TextDialog dialog2 = new Test1TextDialog("如何查看合成表", txt2, null);
                DialogsManager.ShowDialog(m_componentTest1.m_componentPlayer.GuiWidget, dialog2);
            }

            if (m_button3.IsClicked)
            {
                string txt3 = "药水的种类很多，机制也比较丰富\n以下我会罗列一些要点，请务必注意仔细看。\n\n2.万象宇宙的药水体系采取叠加制。例如，当你喝下第一杯生命恢复的药水后，左边状态栏会显示你身上的buff，并给你增加一个60秒。恢复速率为3血每秒的生命恢复效果。当你喝下更多药水或者使用其他带有生命恢复效果的物品时，只会增加对应的时间和恢复速率，并且恢复速率和时间都有上限。\n\n3.一般来说，万象宇宙的buff增益有自己的通用公式。例如生命恢复效果为：1血x恢复速率。生命恢复药水的初始速率为3，时长为60，其他具有恢复效果的物品的初始速率和时长也是不同的。后续的恢复叠加。每次叠加会在现有速率的基础上增加百分之一的速率，生命恢复速率至多为10，时间最多为2分钟\n\n4.药水需要用炼制台去炼制，炼制台其实是万用炼制台，是熔炉的完全覆盖。精密制作台同理，所以我建议你后面发展的时候，用精密制作台和炼制台替换熔炉和工作台。\n\n5.药水有负面也有正面，请注意分辨。一些看起来没用的药水，是为了未来的一些药水做铺垫，例如喷溅的剧毒药水，玩家外的生物同样也会受到buff影响。";
                Test1TextDialog dialog3 = new Test1TextDialog("药水简介", txt3, null);
                DialogsManager.ShowDialog(m_componentTest1.m_componentPlayer.GuiWidget, dialog3);
            }

            if (m_button4.IsClicked)
            {
                string txt4 = "轻工业，其实没什么好说的。\n因为这种工业本质上就是食品工艺的添头。\n\n2.和万象宇宙相比，我移除了机床。所有的制作都可以在精密制作台上完成。\n\n3.轻工业目的在于拓展玩法和一些天马行空的创意，并不是多么硬核的工业。例如超级科技方块，硝石转换器，可以把所有东西都转化成硝石。\n\n4.实际上，工业目前并不是万象系列重点照顾的分支，所以东西很少，但是依旧可玩，比如发酵桶之类的。\n\n5.轻工业的存在，只是为了方便拓展工业路线，这是未来的事情了。";
                Test1TextDialog dialog4 = new Test1TextDialog("轻工业简介", txt4, null);
                DialogsManager.ShowDialog(m_componentTest1.m_componentPlayer.GuiWidget, dialog4);
            }

            if (m_button5.IsClicked)
            {
                string txt5 = "获取坐标很简单，你只需要打开手册，打开开发者模式即可。开发者模式会在右下角显示左边和当前所在单元格的温度湿度。\n\n2.我建议你一直开着开发者模式。因为虽然叫做开发者模式，但它可以为生存提供巨大便利，你也可以通过开发者模式及时的了解环境变动。\n\n3.\n\n4.\n\n5.";
                Test1TextDialog dialog5 = new Test1TextDialog("如何获取坐标", txt5, null);
                DialogsManager.ShowDialog(m_componentTest1.m_componentPlayer.GuiWidget, dialog5);
            }

            if (m_button6.IsClicked)
            {
                string txt6 = "Sen值玩法是食品工艺的一个大头。\n这和万象宇宙类似的Sen值系统\n\n2.食品工艺的sen值系统我把它设计为理智值。没有什么花里胡哨的剧情，这个单纯也是身体状态数据的一种，所以你要重视它\n\n3.玩家受伤会降低sen值。除此之外，如果处于异常状态（中毒，眩晕，致盲，恐怖，流感等）也有概率降低sen值。sen值的降低，也可以通过使用降sen药水实现。\n\n4.sen值降低会影响玩家的行动能力。当sen值降低于30的时候，会显示警告。低于20的时候，进入低sen状态，世界认知会出现错误和扭曲，玩家会持续掉血。当你退出低sen状态的时候，一切复原。（低sen的世界渲染非常掉sen，包括但不限于原版材质血肉化，猩红天空和雾气笼罩，眼珠子等克苏鲁元素。我不建议你真的进入这个状态。）\n\n5.玩家可以通过使用食物恢复sen值，越好吃的食物恢复sen值越多。玩家满血的时候，sen值会缓慢自动恢复。";
                Test1TextDialog dialog6 = new Test1TextDialog("Sen值玩法", txt6, null);
                DialogsManager.ShowDialog(m_componentTest1.m_componentPlayer.GuiWidget, dialog6);
            }

            if (m_button7.IsClicked)
            {
                string txt7 = "手册丢了怎么办？重要的事情重复三遍。因为众所周知，哪怕开发者把教程做的再无微不至，也总有无脑的不看手册和教程，所以我特意放了两个按钮提醒玩家要看手册，以及手册丢了怎么办。\n\n2.游戏开始的时候，会给你一本手册。每次你重生的时候，会自动给你一本手册。\n\n3.手册可以用实体灵能和木棍直接合成。\n\n4.遇事不决多看手册！！！！！！作者已经尽力解答疑惑了，手册会持续更新。\n\n5.";
                Test1TextDialog dialog7 = new Test1TextDialog("手册丢了怎么办？", txt7, null);
                DialogsManager.ShowDialog(m_componentTest1.m_componentPlayer.GuiWidget, dialog7);
            }

            if (m_button8.IsClicked)
            {
                string txt8 = "新来的迷失者，欢迎你！食品工艺是万象系列的第二核心。万象系列，起源于原作者清凝的理想之作：万象宇宙。所有万象系列的模组，都是万象宇宙的孩子。\n例如，食品工艺就是万象宇宙其中的一个玩法分支。\n\n2.万象系列模组是对万象宇宙的拆分。所以，万象系列的所有模组都不会和万象宇宙本体兼容，同样的，内容最完整的是万象宇宙，其他所有的分支都只是万象宇宙的一部分玩法。\n\n3.万象的拆分是为了更好的满足玩家们的需求，同时也保证了兼容性和性能。比如有的玩家只想玩食品工艺，有的玩家只喜欢万象的洞穴优化地形，等等。与此同时，万象宇宙本体对设备的性能要求略高，故作拆分。\n\n4.食品工艺拓展了原版的食物，加入了几十种食物，同时，还拓展了79种植物（目前只适配了蘑菇），更多生物：蜘蛛，僵尸等；食品工艺包括了Buff体系，炼药体系，轻工业。并且可以和诸多模组兼容。相信一定可以给您带来绝佳的游戏体验\n\n5.万象宇宙的原作者清凝因车祸于2024年1月17日去世。清凝希望我来把万象宇宙完成，我答应了。清凝她会永远活在她的万象宇宙，理想国度里。";
                Test1TextDialog dialog8 = new Test1TextDialog("模组介绍", txt8, null);
                DialogsManager.ShowDialog(m_componentTest1.m_componentPlayer.GuiWidget, dialog8);
            }

            if (m_button9.IsClicked)
            {
                string txt9 = "新来的迷失者，欢迎你！食品工艺是万象系列的第二核心。万象系列，起源于原作者清凝的理想之作：万象宇宙。所有万象系列的模组，都是万象宇宙的孩子。\n例如，食品工艺就是万象宇宙其中的一个玩法分支。\n\n2.万象系列模组是对万象宇宙的拆分。所以，万象系列的所有模组都不会和万象宇宙本体兼容，同样的，内容最完整的是万象宇宙，其他所有的分支都只是万象宇宙的一部分玩法。\n\n3.万象的拆分是为了更好的满足玩家们的需求，同时也保证了兼容性和性能。比如有的玩家只想玩食品工艺，有的玩家只喜欢万象的洞穴优化地形，等等。与此同时，万象宇宙本体对设备的性能要求略高，故作拆分。\n\n4.食品工艺拓展了原版的食物，加入了几十种食物，同时，还拓展了79种植物（目前只适配了蘑菇），更多生物：蜘蛛，僵尸等；食品工艺包括了Buff体系，炼药体系，轻工业。并且可以和诸多模组兼容。相信一定可以给您带来绝佳的游戏体验\n\n5.万象宇宙的原作者清凝因车祸于2024年1月17日去世。清凝希望我来把万象宇宙完成，我答应了。清凝她会永远活在她的万象宇宙，理想国度里。";
                Test1TextDialog dialog9 = new Test1TextDialog("模组介绍", txt9, null);
                DialogsManager.ShowDialog(m_componentTest1.m_componentPlayer.GuiWidget, dialog9);
            }

            if (m_button10.IsClicked)
            {
                string txt10 = "新来的迷失者，欢迎你！食品工艺是万象系列的第二核心。万象系列，起源于原作者清凝的理想之作：万象宇宙。所有万象系列的模组，都是万象宇宙的孩子。\n例如，食品工艺就是万象宇宙其中的一个玩法分支。\n\n2.万象系列模组是对万象宇宙的拆分。所以，万象系列的所有模组都不会和万象宇宙本体兼容，同样的，内容最完整的是万象宇宙，其他所有的分支都只是万象宇宙的一部分玩法。\n\n3.万象的拆分是为了更好的满足玩家们的需求，同时也保证了兼容性和性能。比如有的玩家只想玩食品工艺，有的玩家只喜欢万象的洞穴优化地形，等等。与此同时，万象宇宙本体对设备的性能要求略高，故作拆分。\n\n4.食品工艺拓展了原版的食物，加入了几十种食物，同时，还拓展了79种植物（目前只适配了蘑菇），更多生物：蜘蛛，僵尸等；食品工艺包括了Buff体系，炼药体系，轻工业。并且可以和诸多模组兼容。相信一定可以给您带来绝佳的游戏体验\n\n5.万象宇宙的原作者清凝因车祸于2024年1月17日去世。清凝希望我来把万象宇宙完成，我答应了。清凝她会永远活在她的万象宇宙，理想国度里。";
                Test1TextDialog dialog10 = new Test1TextDialog("模组介绍", txt10, null);
                DialogsManager.ShowDialog(m_componentTest1.m_componentPlayer.GuiWidget, dialog10);
            }
        }
    }
}